package cn.com.infcn.spider.scheduler.directory;

import java.util.HashMap;
import java.util.Map;

import org.nlpcn.commons.lang.util.StringUtil;

import com.alibaba.fastjson.JSONObject;

import cn.com.infcn.spider.domain.BinaryFile;
import cn.com.infcn.spider.domain.Doc;
import cn.com.infcn.spider.domain.Job;
import cn.com.infcn.spider.scheduler.SimpleScheduler;

/**
 * 
 * @author mixl
 *
 */
public class DirectoryScheduler extends SimpleScheduler {

	public DirectoryScheduler(Job job) {
		super(job);
	}

	/**
	 * 执行用户脚本
	 * obj 输入项。 说明：内数据结构参照如下方法
	 * {@link cn.com.infcn.spider.io.input.impl.directoryInput#all()}
	 */
	@Override
	protected Doc innerExplain(Object obj) {
		BinaryFile binaryFile = new BinaryFile();
		if (StringUtil.isNotBlank(job.getParse())) {
			JSONObject jsonObj = (JSONObject) JSONObject.toJSON(obj);
			binaryFile.setResult(jsonObj);
			binaryFile.setFilePath(jsonObj.getString("filePath"));
			Map<String, Object> map = new HashMap<>();
			map.put("_result", binaryFile.getResult());
			map.put("_doc", binaryFile);
			super.parse(map,job.getParse());
		}
		return binaryFile;
	}

}
